BBSX Version 1.5 ADMINISTRATIONGUIDE ====================================== by: Thomas Fichte dg1rtf@db0tud.deu.eu fichte@freia.inf.tu-dresden.de 1. Einleitung ------------- Die Konfiguration des BBSX und die Wartung seines Datenbestandes ist fuer den ordentlichen Betrieb unbedingt notwendig. Der Adminstrationsaufwand ist nicht besonders hoch und fast immer ohne UNIX-Kenntnisse moeglich. Das brachte mich auf die Idee einem User das Recht zu geben hier wirksam werden zu koennen, ohne ROOT-Rechte auf dem System zu besitzen. Fuer diese User, und auch fuer Administratoren die vom "dk5sg-bbs" auf das "bbsx" umsteigen ist dieses Manual geschrieben worden. 2. Installation des BBSX ------------------------ Beim compilieren werden in ../lib die Dateien: libutil.a buildsaddr.h strdup.h erwartet. Das Package kann mit "make" compiliert, mit "make install" installiert werden. 3. Administrationsdateien ------------------------- 3.1. Einstellen der Standard-Parameter -------------------------------------- Fuer das BBSX und alle Utility-Programme gibt es eine Konfigurationsdatei: WRKDIR/config WRKDIR ist in "bbs.h" definiert und hat als Standard "/users/bbs". Das Format der Eintraege in "config" ist: Parameter: Wert Zeile mit einem Hash (#) am Anfang gelten als Kommentar. Als Parameter sind folgende Werte moeglich: .IP cprg 17 -Name des Programms, welches zur Kompression des BBS-Inhaltes verwendet wird. Zum Beispiel: "gzip" Default: compress .in 0 cextension - Die Extension, woran ein komprimiertes File erkannt wird. Zum Beispiel: ".gz" fuer "gzip". Default: .Z uncompressopt - Der hier angegeben Parameter wird zwischen den Namen des Kompressprogramms und den Filenamen fuer das Dekomprimieren kopiert. Ein Aufruf sieht dann z.B. so aus: gzip -d 00/00/00/01.gz Default: -d compressopt - Fuer das Komprimieren, koennen bestimmte Optionen angegeben werden. Z.B. bewirkt "-9" beim "gzip" eine hoehere Komprimierung. Default: bbsadm - Name des Nutzers, welcher beim BBSX mit dem Level "ROOT" eingelogged wird, bzw. die Utilites ausfuehren darf. Default: bbsadm telluser - Name des Nutzers, welcher Nachrichten an T@THEBOX beantwortet. Default: tell mydomain - Domain, mit der das BBSX sich nach aussen zeigt. Default: DEU.EU myhostname - Hostname des Systems; der von gethostname() gelieferte Wert wird ueberschrieben. Default: gethostname() logging - yes -> READ-Kommandos werden protokolliert no -> kein Protokoll debug - yes -> alle Kommandos werden in einem File /tmp/bbs.debug geloggt. Der Filename ist in bbs.h angegeben. - no -> kein Kommando-Logging list - Anzahl der Eintraege im Indexfile, welche durchsucht werden. fixaddress - yes -> address-rewriting ein no -> address-rewriting aus station - Stationsbeschreibung fuer den S&F-Header. Die Beschreibung muss mit "[" anfangen. Default: [WAMPES TEST-BBS XXXXXXXXXXXXXXXXXXX] mbox - Loginname einer Mailbox, mit der S&F durchgefuert wird. Soll diese Box vom eigenen Host gepollt werden, so ist hier noch das Protokoll und das zu connectende Call (mit SSID) anzugeben. Der Eintrag hat die Form: mbox: login_name mbox: login_name protokoll call Z.B.: mbox: db0tud mbox: db0jes ax25 db0jes-3 helpfile - Name des Files mit Helptexten infofile - Name des Files mit Staionsbeschreibung debugfile - Filename fuer Debugoutput mailfile - enthaelt Usernamen, die grundsaetzlich als Mail geroutet werden. Beispiel: # Set the program, which you want to use to compress messages cprg: gzip # Set the extension, which is generally used from the compress-program cext: .gz # Option, which the compress program need to decompress uncompressopt: -d # Option, which the compress program need to work compressopt: -9 # Username of the BBS-Administrator bbsadm: bbsadm # Name of the User, who response the tell-request telluser: tell # Domain of the System mydomain: #SAC.DEU.EU # Hostname: myhostname: dg1rtf # description of station station: [DG1RTF - WAMPES BBSX TEST] # switch on/off the writing of the logfile for reading messages logging: yes # switch debug mode off debug: no # configured store & forward mbox: db0sao mbox: db0tud ax25 db0tud mbox: oe9xpi ax25 oe9xpi 3.2. Indexfile -------------- File: WRKDIR/index Das Indexfile enthaelt alle Informationen ueber Nachrichten im BBS. Es ist in binaerer Form und kann somit nicht gelesen werden. Das File wird schnell sehr gross und sollte mit den im Package enthaltenen Utilities gegebenenfalls gekuerzt werden. Die genaue Struktur des Files ist in bbs.h ersichtlich. 3.3. Bulletinidentifier ----------------------- FILE: WRKDIR/seqbid Beim Einspielen einer Message durch einen User wird ein Bulletinidentifier vergeben, der die Form: HOSTNAMEseqbid hat. Der Inhalt von "seqbid" wird nach der Einspielung um 1 erhoeht. Dieser Wert darf niemals veringert, oder das File geloescht werden! 3.4. Rubrikenaliase ------------------- FILE: WRKDIR/bbsalias Zur Erhoehung der Uebersichlichkeit koennen Rubrikennamen beim Einspielen geaendert werden. Fuer das S&F bleibt die Originalrubrik erhalten. Fileformat: wandeln_von wandeln_nach Fuer Joker gilt UNIX-Filestyle. Ein "*" am Beginn der Zeile heisst: Jede Rubrik !!! Das darf nur am Ende dieses Files stehen. Mit # beginnende Zeilen sind Kommentare. Ein dritter Parameter gilt als Kommentar. Beispiel: # Move LINUX TO UNIX linux unix soft* software *sat* sat * diverses 3.5. Sperren von Eintraegen --------------------------- Bestimmte Eintraege koennen fuer das Einspielen in das BBS gesperrt werden, bzw. fuer den S&F an einen angebenen Partner. Die Eintraege in: WRKDIR/.NO ist der eigene Name, wenn das Einspielen verhindert werden soll, der Loginname der Partnerbox, falls kein S&F bestimmter Nachrichten erfolgen soll. Der Name fuer den eigenen Host wird durch gethostname() ermittelt und kann im "config"-File ueberschrieben werden. Die Files haben keinen Einfluss auf Mail! Fuer die Eintraege gilt UNIX-Filestyle. Ein dritter Parameter gilt als Kommentar. Fileformat: Art Eintrag Art ist die Angabe, welcher Parameter im SEND Kommando ausgewertet werden soll. Gueltig sind die Zeichen: ><@. Eintrag ist der zu sperrende Begriff. > an eine Rubrik < von einem User @ dieser Verteiler Beispiel: # Nichts von DG1RTF < dg1rtf > musi* # Keine Musik > bilder # Keine Bilder # Keine Nachrichten an @THEBOX, @ALLE @ THEBOX @ ALLE 3.6. BBS-Hilfstexte ------------------- File: WRKDIR/help In "help" stehen alle durch den User abrufbaren Help-Texte fuer die einzelnen Kommandos. Die Eintraege sind sequentiell im File angeordnet. "^" mrkiert den Beginn des Blocks, der mit HELP angefordert werden kann. Der Block endet beim naechsten ^ wenn sich dazwischen wenigsten eine Zeile befindet, die nicht mit "^" beginnt. Beispiel: ^help Helptext fuer Hilfe ^naechter_hilfstext 3.7. BBS-"Message of the day" ----------------------------- FILE: WRKDIR/.welcome Beim Start des BBS durch Nutzer wird, wenn vorhanden, der Inhalt dieser Datei angezeigt. 3.8. Lifetimeverwaltung ----------------------- FILE: WRKDIR/lifetime Dieses File enthaelt die Lifetimes der einzelnen Rubriken. Es wird nicht vom BBSX ausgewertet, sondern durch das Utility "life". Die Jokerzeichen *,? sind erlaubt. Der Defaultwert fuer Rubriken, welche nicht in diesem File erfasst sind ist 15 Tage. Er kann ueberschrieben werden, durch die Angabe einer Lifetime fuer eine Pseudo-Rubrik: "other" oder einen "*" als ersten Zeichen in der Zeile. Lifetime = -1 bedeuted sofort loeschen. Lifetime = 0 Rubrik hat unendliche Lifetime Die Lifetime wird in Tagen angegeben. Format: Rubrik Lifetime Beispiel: tcpip 100 unix 0 other -1 Siehe auch Utility "life" (11.6.). 3.9. Die globale Startup-Datei ------------------------------ File: /usr/local/bin/bbsrc Der Inhalt dieser Datei wird beim Start des BBS von jedem Nutzer (auser Mailboxen) beim Start ausgfuehrt. Ein SET interface=diebox sollte hier nicht drin stehen. Es ist keine "DieBox" ! und daran sollen sich die Nutzer auch gewoehnen. 3.10. Stationsbeschreibung -------------------------- File: /usr/local/lib/station.data Hier stehen die beim INFO Kommando angezeigten Informationen. 4. Zusaetzliche Kommandos im BBS -------------------------------- 4.1. Das DESTROY Kommando ------------------------- Das DESTROY Kommando wird zum physischen Loeschen von Nachrichten verwendet. Es kann danach kein UNDELETE Kommando mehr durchgefuehrt werden. Syntax: DESTROY mesg# ... Beispiel: DESTROY 12345 4.2. Das F Kommando (nur fuer S&F) ---------------------------------- Mit dem F Kommando erfolgt die Umkehrung des Store und Forward. Das heisst, wenn der S&F-Partner seine Queue geleert hat, wird er dieses Kommando geben um fuer anstehende Nachrichten abzufordern. Syntax: 4.3. Das HIDE Kommando ---------------------- Mit dem HIDE Kommando koennen Nachrichten in die Rubrik "A" bewegt werden. Das ist sinnvoll, wenn man Nachrichten vor dem allgeinem Zugriff schuetzen will, sie aber nicht geloescht werden sollen. Die Rubrik "A" sollte einen entsprechenden Lifetimeeintrag bekommen. Die hier stehen Bulletins werden nicht geforwardet. Syntax: HIDE mesg# ... Beispiel: HIDE 12345 23456 4.4. Das XCRUNCH Kommando ------------------------- Das XCRUNCH Kommando kuerzt das Indexfile. Es werden nur Eintraege erhalten, die maximal 90 Tage alt sind und einen gueltigen BID besitzen. Die Anzahl der zu loeschen Eintraege wird beim STATUS Kommando angezeigt. Syntax: XCRUNCH Nach Ausfuehrung von XCRUNCH terminiert das BBS. Es kann Probleme mit anderen Utilities geben! 4.5. Das XSCREEN Kommando ------------------------- Das XSCREEN Kommando dient dem Bearbeiten von Nachrichten an einem Terminal. Beim Aufruf von XSCREEN wird die erste verfuegbare Nachricht angezeigt. Dann sind folgende Kommandos moeglich: < Suche nach Message mit passendem FROM-Feld Zeige die Nachricht, mit dieser Nummer > Suche nach Message mit passendem TO-Feld ? Zeigt Kommandouebersicht @ Naechste Nachricht mit angebenem Verteiler BACKSPACE vorherigen passenden Eintrag zeigen RETURN naechsten passenden Eintrag zeigen SPACE naechste Bildschirmseite anzeigen k angegeben Eintrag loeschen (physisch) q Bildschirmmodus verlassen r aktuellen Eintrag nochmal anzeigen s Suche nach angebenen Subject v Nachricht editieren. Es wird das mit: set editor spezifierte Programm verwendet. 4.6. Das CHANGE Kommando ------------------------ Das CHANGE-Kommando dient dem Aendern der Indexfileeintraege aus dem BBS heraus. Syntax: change field msg# ... Fuer "field" sind moeglich: lifetime, # to, > at, @ from, < bid, $ subject Beispiele: bbsx> change # 17 Message #17 Lifetime [10] : 5 bbsx> change # 17 Message #17 Lifetime [5] : expired 5. Sonderrechte --------------- Grundsaetzlich darf ein mit dem Level gleich ROOT eingeloggter User alles. Fuer die Kommandos: DELETE, MAIL, MOVE, UNDELETE bestehen keine Restriktionen. Es koennen alle Nachrichten bearbeitet werden, unabhaengig vom Einspieler der Message. Es besteht Zugriff auf alle Rubriken, auch die, deren Name aus einem Zeichen besteht. Das sind: A - Archivrubrik B - Backuprubrik E - Ferneraseinformationen M - MYBBS-Information T - Tellanforderungen Die Rubriken E, M und T benoetigen als Verteiler unbedingt @THEBOX. Bei einem LIST Befehl fuer diese Rubriken ist der TO Parameter anzugeben. Beispiel: LIST > A COUNT 5 Listet die letzten 5 Messages an A 6. BBS - Modes -------------- Das BBS ist in verschiedenen Modi aufrufbar. Dazu werden koennen beim Start verschiedene Optionen angegeben werden. -d DEBUG-Modus: alle Kommandos der gestarteten BBS werden in /tmp/bbs.debug gelogged. Siehe auch 3.1. ! -m MAIL oder NEWS Modus: Das BBS erwartet die Mail oder das Bulletin mit RFC822-Header. Das BBS ist dann aehnlich rnews, rmail benutzbar. -f S&F-Modus: Es wird eine S&F-Verbindung zum angegeben bbs aufgebaut. Das Uebertragungsprotokoll und die zu connectende Hardwareadresse muessen bekannt sein. (siehe 3.1.) -w Warteschleife: Das BBS wartet die angegebenen Sekunden bis es startet. Damit kann das Programm in die /etc/inittab eingetragen werden und ein S&F gesteuert werden. Beispiel: sf:6:respawn:/usr/local/bin/bbs -w 3600 -f db0jes >/dev/null 7. Store und Forward -------------------- Das BBSX simuliert DieBox Version 1.8. S&F -Partner werden in WRKDIR/config eingetragen (siehe 3.1.). Ein Eintrag: mbox: bewirkt, dass sich das BBS beim Start durch mit einem fuer den S&F benoegtigten Prompt meldet. Um das BBS automatisch zu starten, muessen in der .profile/.login des folgende Eintraege vorhanden sein: mesg no stty intr '^-' quit '^-' erase '^-' kill '^-' eof '^-' eol '^-' swtch '^-' -brkint -isig exec bbs In der ".bbsseq" steht die Messagenummer der letzten geschickten Nachricht. Etwaige Loginmeldungen in /etc/profile duerfen nicht an einen S&F-Partner gegeben werden. Baycom reagiert da sehr empfindlich. Soll ein anderes BBS durch das eigene gepollt werden um S&F durchzufuehren, sind die entsprechenden Routingeintraege in der "net"-Konfiguration sicherzustellen. In WRKDIR/config muss zusaetzlich zum noch das Uebertragungsprotokoll und die Hardwareadresse angeben werden: mbox: Das Pollen eines S&F-Partners erfolgt mittels "-f" Option des BBS. Entsprechende Eintraege sind in der "crontab" der "root" oder des BBS-Administrators anzulegen. Wird der BBS Aufruf ueber die /etc/inittab geregelt, kann mittels "-w" Option der Start des Programms verzoegert werden (siehe 6.). 8. Kompatibilitaet -------------------- BBSX wertet den System Identifier aus. Es kennt momentan folgende Systeme: DieBox Baycom Folgendes Verhalten ist realisiert. +------------------------+-----------------+-------------------+ | | DieBox | Baycom | | | 1.7 1.8 >>> | 1.13 1.14 >>> | +------------------------+-----------------+-------------------| | Subject in Message- | O X X | O X X | | header fuer E/M@THEBOX | | | +------------------------+-----------------+-------------------+ | S&F-Beschleunigung | O O x | O O O | | fuer E/M@THEBOX | | | +------------------------+-----------------+-------------------+ | BOXBIN | O O x | O O O | +------------------------+-----------------+-------------------+ Die im System-Identifier angegebenen Flags werden nicht ausgewertet. Das BBS selbst gibt nur das H-Flag nach Aussen. 9. Fernerase ------------ Ein netzweiter Fernerase wird ausgeloest, wenn ein Nutzer seine Nachrichten mittels DELETE Kommando loescht. Diese Funktion tritt nur dann in Kraft, wenn der Verteiler ungleich dem eigenen Hostnamen ist. Eingeloggte User mit einem Level gleich "ROOT" loesen mit einem DELETE Kommando keinen Fernerase aus. Sie muessen dies explizit mit einem SEND Kommando an: E@THEBOX tun. Zum Beispiel: S E @ THEBOX < DB0TUD Subject: BID_der_zu_loeschenden_Nachricht Von anderen BBS ausloeste Fernerase werden durch das Utility "rerase" bearbeitet. 10. Setzen der MYBBS-Information -------------------------------- Mit dem Kommando MYBBS erzeugt der Nutzer eine Nachricht an M@THEBOX. Ein entsprechender SEND Befehl wuerde so aussehen: S M @ THEBOX < USER Subject: MYBBS time ^Z time in Unixsystemzeit Zum Update der Userdatabase muss das mitgelieferte Utility "udbm" verwendet werden. Jenes in der Originaldistribution erzeugt ein Chaos, da die Struktur des Indexfile geaendert wurde. Das udbm sollte 1-2 mal taeglich gestartet werden. Dazu sind entsprechende Eintraege in der crontab des ROOT-Users vorzunehmen. 11. Dienstprogramme ------------------- 11.1. BBSCOMPR -------------- BBSCOMPR dient dem Scannen des Indexfiles auf alte Eintraege und komprimieren der dazugehoerigen Nachricht. Syntax: bbscompr [-t time] Optionen: -t